package com.groep14.project;

import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Connection;
import java.sql.PreparedStatement;

/**
 * Connectie klasse die we gebruiken om de connectie naar de database te leggen vanuit al de andere klassen.
 * 
 * @since r33 - 3 April 2012
 * @author Maarten Tutak
 *
 */

public class Connectie {
	
	private Connection con = null;
	private PreparedStatement pStatement = null;
	private static String URL = "jdbc:mysql://127.0.0.1:3306/netbooks";
	
	/**
	 * Eerste constructor van de Connectie klasse, waarbij er een default waarde word genomen voor de username en password van de database.
	 * 
	 * @throws SQLException
	 * @throws ClassNotFoundException
	 * @throws InstantiationException
	 * @throws IllegalAccessException
	 */
	public Connectie() throws SQLException, ClassNotFoundException, InstantiationException, IllegalAccessException {
		Class.forName("com.mysql.jdbc.Driver").newInstance();
		this.con = DriverManager.getConnection(URL, "root", "");
	}
	
	/**
	 * Tweede constructor van de Connectie klasse, waarbij de gebruiker een waarde kan meegeven voor username en password
	 * 
	 * @param user
	 * @param password
	 * @throws SQLException
	 * @throws ClassNotFoundException
	 * @throws InstantiationException
	 * @throws IllegalAccessException
	 */
	public Connectie(String user,String password) throws SQLException, ClassNotFoundException, InstantiationException, IllegalAccessException {
		Class.forName("com.mysql.jdbc.Driver").newInstance();
		this.con = DriverManager.getConnection(URL, user, password);
	}
	
	/**
	 * Connection getter
	 * @return connection
	 */
	public Connection getCon() {
		return con;
	}

	/**
	 * Connection setter
	 * @param con
	 */
	public void setCon(Connection con) {
		this.con = con;
	}
	
	/**
	 * Connectie naar de database sluiten.
	 * @throws SQLException
	 */
	public void closeCon() throws SQLException{
		con.close();
	}
	
	/**
	 * PreparedStatement getter
	 * @return preparedStatement
	 */
	public PreparedStatement getpStatement() {
		return pStatement;
	}
	
	/**
	 * PreparedStatement setter
	 * @param pStatement
	 */
	public void setpStatement(PreparedStatement pStatement) {
		this.pStatement = pStatement;
	}
	
	/**
	 * PreparedStatement sluiten.
	 * @throws SQLException
	 */
	public void closepStatement() throws SQLException {
		pStatement.close();
	}
	
}
